﻿using ContactSMS.Commons.QueryParameters;
using ContactSMS.Domain.Entity;
using ContactSMS.Domain.PagedResult;

namespace ContactSMS.Domain
{
    public interface IMessageSessionRepository
    {
        Task<PagedMessageSessionsResult> GetMessageSessionsAsync(MessageSessionQueryParameters parameters, int page = 1, int pageSize = 10, long userId = 0);

        Task<MessageSession?> AddMessageSessionAsync(MessageSession messageSession);

        Task<MessageSession?> UpdateMessageSessionAsync(long id, MessageSession messageSession);

        Task<MessageSession?> GetMessageSessionByMobileAsync(string mobile);

        Task<MessageSession?> GetMessageSessionByIdAsync(long id);

        Task<bool> DeleteMessageSessionByIdAsync(long id);

        Task<bool> DeleteMessageSessionByIdsAsync(long[] ids);
    }
}
